\hypertarget{classserialize}{
\section{Dokumentace třídy serialize}
\label{classserialize}\index{serialize@{serialize}}
}
Nástroj pro serializaci.  


{\tt \#include $<$serialize.h$>$}

\subsection*{Veřejné metody}
\begin{CompactItemize}
\item 
\hyperlink{classserialize_a12bf8397bc59389016fbc7accbf0e37}{serialize} (std::ostream $\ast$, std::istream $\ast$)
\begin{CompactList}\small\item\em Konstruktor serializace. \item\end{CompactList}\item 
\hypertarget{classserialize_2df9d27a922aab0d9dbcbf509cfc5a68}{
\hyperlink{classserialize_2df9d27a922aab0d9dbcbf509cfc5a68}{$\sim$serialize} ()}
\label{classserialize_2df9d27a922aab0d9dbcbf509cfc5a68}

\begin{CompactList}\small\item\em Destruktor serializace. \item\end{CompactList}\item 
void \hyperlink{classserialize_173e80b3050f3dcc6240af2990a67c4c}{setOffsets} (bool)
\begin{CompactList}\small\item\em Nastaví zapisování nových offsetu do kontejneru. \item\end{CompactList}\item 
\hypertarget{classserialize_99d9732938cd95c470f785b016572be1}{
bool \textbf{getOffsets} () const }
\label{classserialize_99d9732938cd95c470f785b016572be1}

\item 
void \hyperlink{classserialize_0f9eafe69358bb1ecfcadcee6ab80868}{writeGContainer} (\hyperlink{classgObjectContainer}{gObjectContainer} \&)  throw (std::ofstream::failure)
\begin{CompactList}\small\item\em Zapíše kontejner do výstupního souboru. \item\end{CompactList}\item 
void \hyperlink{classserialize_4fbf0f4d86cc4568d60332413e17695d}{writeGObject} (\hyperlink{classgObject}{gObject} \&)  throw (std::ofstream::failure)
\begin{CompactList}\small\item\em Zapíše objekt do výstupního souboru. \item\end{CompactList}\item 
void \hyperlink{classserialize_d6818fc268d18d91d5ce4413463262ad}{writeGType} (\hyperlink{classgType}{gType} \&, bool=false)  throw (std::ofstream::failure)
\begin{CompactList}\small\item\em Zapíše \hyperlink{classgType}{gType} do výstupního souboru. \item\end{CompactList}\end{CompactItemize}


\subsection{Detailní popis}
Nástroj pro serializaci. 

Uloží do souboru kontejner, objekt nebo \hyperlink{classgType}{gType} v reprezentaci g-kódu. Ke sve činosti potřebuje i původní nezměněný vstupní soubor, protože struktura, jako je kontejner, obsahuje jen kód mezi tagy (OBJECT name)...(\#!OBJECT name) a informaci o jejich umístění v původním zrojovém souboru. Z těchto informací je poté sestavem nový soubor, obsahující starý obsah mimo obsahu umístěného mezi tagy. 

\subsection{Dokumentace konstruktoru a destruktoru}
\hypertarget{classserialize_a12bf8397bc59389016fbc7accbf0e37}{
\index{serialize@{serialize}!serialize@{serialize}}
\index{serialize@{serialize}!serialize@{serialize}}
\subsubsection[{serialize}]{\setlength{\rightskip}{0pt plus 5cm}serialize::serialize (std::ostream $\ast$ {\em ofile}, \/  std::istream $\ast$ {\em ifile})}}
\label{classserialize_a12bf8397bc59389016fbc7accbf0e37}


Konstruktor serializace. 

Vstupní a výstupní soubor nesmí být totožný, pokud je třeba zapisovat do totožného souboru je třeba použít např dočasný soubor. \begin{Desc}
\item[Parametry:]
\begin{description}
\item[{\em ofile}]Výstupní soubor. \item[{\em ifile}]Původní vstupní soubor. \end{description}
\end{Desc}


\subsection{Dokumentace k metodám}
\hypertarget{classserialize_173e80b3050f3dcc6240af2990a67c4c}{
\index{serialize@{serialize}!setOffsets@{setOffsets}}
\index{setOffsets@{setOffsets}!serialize@{serialize}}
\subsubsection[{setOffsets}]{\setlength{\rightskip}{0pt plus 5cm}void serialize::setOffsets (bool {\em offsets})}}
\label{classserialize_173e80b3050f3dcc6240af2990a67c4c}


Nastaví zapisování nových offsetu do kontejneru. 

Standartně je nastaveno na true. \hypertarget{classserialize_0f9eafe69358bb1ecfcadcee6ab80868}{
\index{serialize@{serialize}!writeGContainer@{writeGContainer}}
\index{writeGContainer@{writeGContainer}!serialize@{serialize}}
\subsubsection[{writeGContainer}]{\setlength{\rightskip}{0pt plus 5cm}void serialize::writeGContainer ({\bf gObjectContainer} \& {\em container})  throw (std::ofstream::failure)}}
\label{classserialize_0f9eafe69358bb1ecfcadcee6ab80868}


Zapíše kontejner do výstupního souboru. 

S pojmem zápisu kontejneru je spojeno i výhledání částí zrojového textu, který není obsažen v kontejneru, tedy v objektech kontejneru ,ale v původním vstupním souboru. V objektech kontejneru jsou uvedeny jen informace, kde se přesně se v souboru nachází. Vyhazuje vyjímku spojenou se čtením případě zapisem do souboru. \begin{Desc}
\item[Parametry:]
\begin{description}
\item[{\em container}]Kontejner, který chceme serializovat. \end{description}
\end{Desc}
\hypertarget{classserialize_4fbf0f4d86cc4568d60332413e17695d}{
\index{serialize@{serialize}!writeGObject@{writeGObject}}
\index{writeGObject@{writeGObject}!serialize@{serialize}}
\subsubsection[{writeGObject}]{\setlength{\rightskip}{0pt plus 5cm}void serialize::writeGObject ({\bf gObject} \& {\em object})  throw (std::ofstream::failure)}}
\label{classserialize_4fbf0f4d86cc4568d60332413e17695d}


Zapíše objekt do výstupního souboru. 

S pojmem zápisu objektu je spojeno i výhledání částí zrojového textu, který není obsažen v objektu ale v původním vstupním souboru. V objektech kontejneru jsou uvedeny jen informace, kde přesně se v souboru nachází. Vyhazuje vyjímku spojenou se čtením případě zapisem do souboru. \begin{Desc}
\item[Parametry:]
\begin{description}
\item[{\em object}]Objekt, který chceme serializovat. \end{description}
\end{Desc}
\hypertarget{classserialize_d6818fc268d18d91d5ce4413463262ad}{
\index{serialize@{serialize}!writeGType@{writeGType}}
\index{writeGType@{writeGType}!serialize@{serialize}}
\subsubsection[{writeGType}]{\setlength{\rightskip}{0pt plus 5cm}void serialize::writeGType ({\bf gType} \& {\em type}, \/  bool {\em relative} = {\tt false})  throw (std::ofstream::failure)}}
\label{classserialize_d6818fc268d18d91d5ce4413463262ad}


Zapíše \hyperlink{classgType}{gType} do výstupního souboru. 

Pouze převede repzentaci gTypu ma textovou reprezenaci, jakou známe z g-kódu a zapíše do výstupního souboru. \begin{Desc}
\item[Parametry:]
\begin{description}
\item[{\em type}]G-typ, který chceme serializovat. \end{description}
\end{Desc}


Dokumentace pro tuto třídu byla generována z následujících souborů:\begin{CompactItemize}
\item 
src/serialize.h\item 
src/serialize.cpp\end{CompactItemize}
